{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "aec155c2-3ac5-425b-93d2-baa54d309449",
   "metadata": {},
   "source": [
    "# 计算机中数的表示\n",
    "\n",
    "\n",
    "16GB存放多久字符"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "02b83501-6d20-4f89-ab34-b33fc210b357",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "17179869184\n"
     ]
    }
   ],
   "source": [
    "print(16*(2**30))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "cfaf1a1a-2ff9-44a5-a230-2072b48c2df1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "54.83689498901367\n"
     ]
    }
   ],
   "source": [
    "print((4378**2)*3/(2**20))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "0fb217cd-00e3-4777-9f62-eb75bc720e04",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "298.7769457640237\n"
     ]
    }
   ],
   "source": [
    "print((16*(2**30))/((4378**2)*3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e02620f7-34c5-423a-bf4f-d7964ba3edce",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "274.658203125\n"
     ]
    }
   ],
   "source": [
    "print((((12**2)*10**6)*2)/(2**20))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6cae21bd-f930-4732-a45f-1bf4bf62a796",
   "metadata": {},
   "source": [
    "# 快速生成文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "02060ae8-632b-4019-9d7c-9557b629548c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as py\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "id": "cac7c6f1-9047-445d-a582-f2265c7d1dd3",
    }
   "source": [
    "%%writefile velocity_earth.csv\n",
    "name,velocity,earth\n",
    "苹果,0.1,falldown\n",
    "网球,50,falldown\n",
    "羽毛球,63,falldown\n",
    "大炮,600,falldown\n",
    "子弹,850,falldown\n",
    "鬼怪,2370,falldown\n",
    "防空导弹,3000,falldown\n",
    "神7,7820,flyout\n",
    "新视野号,16260.0,flyout"
     ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "d6f69982-ad31-4be4-ab9f-547dac93dbd5",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(\"velocity_earth.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "96d3ca8a-ae01-4a23-9779-01311d1faedd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   name  velocity     earth\n",
      "0    苹果       0.1  falldown\n",
      "1    网球      50.0  falldown\n",
      "2   羽毛球      63.0  falldown\n",
      "3    大炮     600.0  falldown\n",
      "4    子弹     850.0  falldown\n",
      "5    鬼怪    2370.0  falldown\n",
      "6  防空导弹    3000.0  falldown\n",
      "7    神7    7820.0    flyout\n",
      "8  新视野号   16260.0    flyout\n"
     ]
    }
   ],
   "source": [
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "05ad66b2-59ac-420a-8641-2ff8e8512e9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4      子弹\n",
       "5      鬼怪\n",
       "6    防空导弹\n",
       "7      神7\n",
       "Name: name, dtype: object"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['name'][4:8]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "ecac4987-a026-48e7-9ea4-7b4824594564",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import os\n",
    "import pandas as pd\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "ca206c1f-6850-405f-bbac-5daf0daa28f5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Writing money.csv\n"
     ]
    }
   ],
   "source": [
    "%%writefile money.csv\n",
    "year,money\n",
    "1990,38\n",
    "1991,49\n",
    "1992,53\n",
    "1993,58\n",
    "1994,65\n",
    "1995,70"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "30ed3f82-56fc-43b2-8bbb-d3a51ad139cb",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(\"money.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "fae516ae-a5f0-4744-b50f-26fa726d4a87",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   year  money\n",
      "0  1990     38\n",
      "1  1991     49\n",
      "2  1992     53\n",
      "3  1993     58\n",
      "4  1994     65\n",
      "5  1995     70\n"
     ]
    }
   ],
   "source": [
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "9a76283c-1c9d-41b2-a877-6e92f3b7156e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHgCAYAAAC/0ofgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAATkBJREFUeJzt3Qd4VGXaxvE7PYEUIBBq6DV0glKtoICI6wqoiIhdsALrqrgW0FVsiIsKArqoC4plbaiogIiCoFTpofcSKSkkpM93vS+bfISiISQ5U/6/65rNnDKTJ8csc+dtx8/lcrkEAADggfydLgAAAKC4CDIAAMBjEWQAAIDHIsgAAACPRZABAAAeiyADAAA8FkEGAAB4LIIMAADwWAQZAADgsQgyAADAYxFkAACAxyLIAAAAj0WQAVAmMjIylJeX53QZALwMQQbwYvPmzZOfn58+/fTTU46999579tiiRYvs9oYNG9SvXz9VqlRJoaGhat++vb744otCrzl8+LAefPBBtWzZUuHh4YqMjFSvXr3022+/FTrvhx9+sO89Y8YMPfbYY6pZs6bKlSunlJSU09Y5atQoe/7GjRt14403KioqSlWqVNHjjz8ul8ulXbt26S9/+Yv9ftWqVdPYsWNPeY/ExETddtttqlq1qq2/devWeueddwqds337dvt9XnrpJU2ePFkNGjRQSEiIzjvvPC1ZsuSU9/yza7J161b7fuPGjTvltT///LM99v7775/2ZwZQQlwAvFZeXp4rNjbW1bdv31OOXXHFFa4GDRrY52vWrHFFRUW54uLiXM8//7zrtddec1144YUuPz8/1yeffFLwmiVLltjXPPLII65Jkya5nnrqKVfNmjXta/fs2VNw3rx581zmnxfzfm3atHG9/PLLrjFjxrjS0tJOW+eTTz5pzzfnDhgwwDVhwgRX79697T7z2iZNmriGDh1q93fp0sXunz9/fsHr09PTXc2aNXMFBQW5hg8f7ho/frzrggsusOe98sorBedt27bN7mvbtq2rYcOG9md94YUXXJUrV3bVqlXLlZWVVXBuUa+JqSc+Pv6Un+nuu+92RUREnPFnBlAyCDKAlxs5cqQrJCTElZSUVLAvMTHRFRgYaAOE0a1bN1fLli1dGRkZhUJQ586dXY0aNSrYZ47n5uYWen8TDsz7m1BzcpCpX7++DRl/Jj/I3HnnnQX7cnJybLgwweG5554r2H/kyBFXWFiYa/DgwQX7TFgxr582bVrBPhNKOnXq5AoPD3elpKQU1GrOi46Odh0+fLjg3M8//9zunzlzZsG+ol4TE+jMa9evX1/oe5twdGKNAEoHXUuAl7vpppuUmZmpjz/+uGDfBx98oJycHNuNY7qLvv/+e1177bVKTU3VwYMH7ePQoUPq0aOHNm3apD179tjXmW4Yf//j/2zk5ubac0wXU5MmTbR8+fJTvvfgwYMVFhZW5Fpvv/32gucBAQG2K8f8wWW6jPJVqFDBfj/TrZPv66+/tl1OAwYMKNgXFBSk+++/X0ePHtX8+fMLfZ/rrrtOFStWLNi+4IIL7Nf89zyba2LOMd1O06dPL3i/b7/91p5vri+A0kWQAbxc06ZN7RiQEz9ozfOOHTuqYcOG2rx5sw0LZjyKGZdy4uPJJ58sGH9imMG6ZjxIo0aNbKipXLmyPW/VqlVKTk4+5XvXq1ev4LkJPvv37y/0yMrKKnR+7dq1C22bsTImJJjvc/L+I0eOFGzv2LHD1pQfsvI1a9as4PgffZ/8UJP/nmdzTUyw6tOnjx1zdOL1NeOCLr300tP8FwFQkgJL9N0AuG2rzAMPPKDdu3fb1pnFixfrtddes8fyZxKZQbymteF0TOAxnn32Wfvhfuutt+rpp5+2g2BNeBg2bNhpZySd2BpjBuyeGGzyByNffPHFhVphTna6fYYJGsX1Z+95Ntck//p+9NFHdoCvGQhtBgTffffdpwQrACWPIAP4gOuvv14jRoywM2iOHTtmu11M94pRv359+9Xs6969+x++j+meuuSSS/TWW28V2p+UlHRKq8nJTNfP7NmzC+0zM4tKQp06dWyrkAkgJ4YHM+so//jZOJtrYvTs2dO21piWmA4dOig9PV2DBg06658DwNnjzwXAB5iQYaZJT5s2zX7Ymg/e/OARExNjW0UmTZqkffv2nfLa33//vVBLxsktIaYlIn+8yB8xXUQmFJz4OHGcyrm44oorbFeVGfuTz4wBevXVV+0Ynosuuuis3u9srokRGBhox+d8+OGHevvtt22rTKtWrc7hJwJQVLTIAD7CdH+YNVEM0y10otdff11du3a1H8B33HGHbZE4cOCAXWPGdEflrxNz5ZVX6qmnntItt9yizp07a/Xq1TYY5bdgOOXOO++0oePmm2/WsmXLVLduXdt6tHDhQr3yyiuKiIg46/cs6jU58fqOHz/edpc9//zzJfjTAfgjBBnAR5gBqaYFxHS/XHXVVYWOxcXFaenSpRo9erRtUTCzc0yrRNu2bfXEE08UnPfoo48qLS3NDmw1rR/t2rXTV199pUceeUROMmNxzCJ8pg6zCJ5ZeM/MbJo6daoNN8VR1GuSLz4+Xs2bN9f69es1cODAEvipABSFn5mDXaQzAXg009VSo0YNG2hOHuOCkmFCjhkAPXfuXKdLAXwGY2QAH/HZZ5/ZsR2mCwQlz7TerFy5kusLlDFaZAAv98svv9gZPWZcjBnge7qF61B8a9asseNyzP2fzCJ4ZlE9M7AZQNmgRQbwchMnTtTQoUPt+I53333X6XK8jhlUbAY/Z2dn2+nthBigbNEiAwAAPBYtMgAAwGMRZAAAgMciyAAAAI9FkAEAAB6LIAMAADwWQQYAAHgsggwAAPBYBBkAAOCxCDIAAMBjEWQAAIDHIsgAAACPRZABAAAeiyADAAA8FkEGAAB4LIIMAADwWAQZAADgsQgyAADAYxFkAACAxyLIAAAAj0WQAQAAHosgAwAAPBZBBgAAeCyCDAAA8FgEGQAA4LEIMgAAwGMRZAAAgMciyAAAAI8VKC+Xl5envXv3KiIiQn5+fk6XAwAAisDlcik1NVU1atSQv7+/7wYZE2JiY2OdLgMAABTDrl27VKtWLd8NMqYlJv9CREZGOl0OAAAogpSUFNsQkf857rNBJr87yYQYggwAAJ7lz4aFMNgXAAB4LIIMAADwWAQZAADgsQgyAADAYxFkAACAxyLIAAAAj0WQAQAAHosgAwAAPBZBBgAAeCyvX9kXAACUvNw8l37ddliJqRmKiQjV+fUqKcDfz7daZOrWrWuXHj75cc8999jjGRkZ9nl0dLTCw8PVt29fHThwwMmSAQDwed+s2aeuz3+vAVMW64EZK+1Xs232+1SQWbJkifbt21fwmD17tt3fv39/+3X48OGaOXOmPvroI82fP9/eyfqaa65xsmQAAHzaN2v2aei05dqXnFFo//7kDLu/rMOMn8vlcslNDBs2TF9++aU2bdpk73pZpUoVvffee+rXr589vmHDBjVr1kyLFi1Sx44di/Se5n2ioqKUnJzMTSMBADjH7iTT8nJyiMlnOpaqRYVqwcOXnnM3U1E/v91msG9WVpamTZumW2+91XYvLVu2TNnZ2erevXvBOU2bNlXt2rVtkDmTzMxM+8Of+AAAAOfOjIk5U4gxTMuIOW7OKytuE2Q+++wzJSUl6eabb7bb+/fvV3BwsCpUqFDovKpVq9pjZzJmzBib4PIfsbGxpV47AAC+IDE1o0TP86og89Zbb6lXr16qUaPGOb3PyJEjbTNU/mPXrl0lViMAAL4qMydXi7ceKtK5ZhaTT02/3rFjh+bMmaNPPvmkYF+1atVsd5NppTmxVcbMWjLHziQkJMQ+AADAuTNDab/fkKinv1yn7YfS//Dc/DEyZiq2T7XITJ06VTExMerdu3fBvvj4eAUFBWnu3LkF+xISErRz50516tTJoUoBAPAdmxOP6uapS3TbO0ttiKkSEaLBnerYwHLyUN787Sf7xJXpejKOt8jk5eXZIDN48GAFBv5/OWZ8y2233aYRI0aoUqVKdsTyfffdZ0NMUWcsAQCAs5eSka3xczbp7Z+3KyfPpaAAP93atZ7uu7SRwkMC1alBtEbPXFdo4K9piTEhpmeL6ipLjgcZ06VkWlnMbKWTjRs3Tv7+/nYhPDMbqUePHpowYYIjdQIA4O3y8lz6aNkuvfhtgg4ezbL7ujWN0WNXxqle5fIF55mwcllcNbdY2det1pEpDawjAwDAn1u247BGfbFOq/ck2+36VcrriSvjdHGTGLnz57fjLTIAAMA5+5Mz9Nys9fps5V67HRESqAe6N9JNneoqONAthtL+IYIMAAA+KCM7V28t2KbX521Welau/Pyka+Nj9WCPJnZQr6cgyAAA4ENcLpe+W3dAz3y1XjsPH59O3a52BY2+qoVa1oqSpyHIAADgIzYdSNVTX67TT5sO2u2qkSEa2auZ/tKmhr09kCciyAAA4OWSj2XrlTkb9e6iHfbGj8EB/rrjwnq6++KGKh/i2VHAs6sHAABnZELLB0t26aXvEnQ47fh06svjquqx3nGqHV1O3oAgAwCAF/p122GNnrlWa/em2O2GMeF2wboLGlWRNyHIAADgRfYmHdOYWRs087f/TacODdTw7o01qFMdBQW4/3Tqs0WQAQDAS6ZTT/5xqyb8sFkZ2Xl2OvWA82vrb5c1VnS450ynPlsEGQAAPHw69Tdr9uuZr9dr95Fjdt95dSvqyT7N1aKm502nPlsEGQAAPNSG/Ska/cU6Ldp6yG5XjwrVyCuaqU+r6h47nfpsEWQAAPAwSelZenn2Rk1bvEN5Likk0F93XVhfQy5uoHLBvvXR7ls/LQAAHiwnN0/v/7pTY2dvVFJ6tt3Xq0U1PXpFM8VW8o7p1GeLIAMAgAdYtOWQnU69YX+q3W5SNUJPXhWnzg0qy5cRZAAAcGO7j6Tr2a/X6+vV++12VFiQ/nZ5Y91wfm0FeuF06rNFkAEAwA0dy8rVxPlbNGn+FmXm5MnfTxrYoY5GXNZYFcsHO12e2yDIAADgZtOpv1q9T89+tV57kzPsvo71K9np1M2qRzpdntshyAAA4CbW7k3W6Jnr7O0FjJoVwvSP3s3sgF5fmU59tggyAAA4zNzQcex3CXZGkplOHRrkr6EXNdRdF9VXaFCA0+W5NYIMAAAOTqc2a8GYNWFSMnLsvitbVbeL2pnWGPw5ggwAAA5YuPmgnU698cBRu23Gv4zqE6cO9aOdLs2jEGQAAChDuw6n659frdO3aw/Y7YrlzHTqJvYGjwFmahLOCkEGAIAykJ6VownztmjyT1uVlZNnQ8ugjnU0vHtjRZULcro8j0WQAQCglKdTf/HbXo35eoP2pxyfTt21YWU90SdOjatGOF2exyPIAABQStbsSdaoL9Zq6Y4jdju2Upge6x2ny+OqMp26hBBkAAAoYQePZuqlbxP0wdJdcrmksKAA3XNJA91+AdOpSxpBBgCAEpKdm6d3ft6uf83dpNT/Taf+S5saeqRXU1WPYjp1aSDIAABQAuZv/F1PzVyrLb+n2e0WNc106uZqX7eS06V5NYIMAADnYPvBNDudes76RLsdXT5Yf+/RRP3bxzKdugwQZAAAKIajmTl67fvN+veCbcrKzVOgv58Gd66r+7s1UlQY06nLCkEGAICzkJfn0mcr9+i5WRuUmJpp913YuIqeuLKZGsYwnbqsEWQAACii33YladTMtVqxM8lu14kup8d7x6lbsximUzuEIAMAwJ9ITM3Qi98k6KNlu+12+eAA3XtpI93ata5CAplO7SSCDAAAZ2BuJfD2z9s0fu5mOybGuKZdTT3cs6mqRoY6XR4IMgAAnN68DYl6+st12nrw+HTq1rWi9ORVzdWudkWnS8MJCDIAAJxg6+9HbYCZl/C73a4cHqKHezZR33a15M90ardDkAEAQFJqRrZe/X6zpi7cpuxcl4IC/HRrl3q699KGighlOrW7IsgAAOTr06k/Xr5bL3yTYO+RZFzaNEaP9W6m+lXCnS4Pf4IgAwDwWct3HtHoL9bqt93Jdrt+5fJ6vE+cLmkS43RpKCKCDADA5xxIydDzszbokxV77HZ4SKAe6NbIrswbHOjvdHk4CwQZAIBXyc1z6ddth+3aLzERoTq/XqWCex5l5uTqrQXb9Pr3m5WWlWv39Y+vpb/3bGLPhechyAAAvMY3a/Zp9Mx12pecUbCvelSonrgyToEB/vbmjjsOpdv9bWtXsHenbh1bwcGKca4cbz/bs2ePbrzxRkVHRyssLEwtW7bU0qVLC47ffPPNdtnnEx89e/Z0tGYAgHuGmKHTlhcKMYbZHjp9ue54d6kNMTERIRp3XWv9d0hnQowXcLRF5siRI+rSpYsuueQSzZo1S1WqVNGmTZtUsWLhxYZMcJk6dWrBdkhIiAPVAgDcuTvJtMS4/uS8uy6qr/subWTHxMA7OPpf8vnnn1dsbGyhkFKvXr1TzjPBpVq1akV6z8zMTPvIl5KSUkLVAgDclRkTc3JLzOlc3DiGEONlHO1a+uKLL9S+fXv1799fMTExatu2raZMmXLKeT/88IM93qRJEw0dOlSHDh0643uOGTNGUVFRBQ8TlAAA3s0M7C3J8+A5HA0yW7du1cSJE9WoUSN9++23NqTcf//9eueddwp1K7377ruaO3eubcGZP3++evXqpdzc46PNTzZy5EglJycXPHbt2lWGPxEAwAlFnXHEzCTv4+dyuf6sS7HUBAcH2xaZn3/+uWCfCTJLlizRokWLzhh+GjRooDlz5qhbt25/+j1M15JpmTGhJjIyskTrBwC4h/X7UnTl+AXKPcNHmpl8XS0qVAsevrRgKjbcW1E/vx1tkalevbri4uIK7WvWrJl27tx5xtfUr19flStX1ubNm8ugQgCAu/tu7X71m/jzH4YY48k+cYQYL+RokDEzlhISEgrt27hxo+rUqXPG1+zevduOkTEhCADgu0yHwvi5m3Tnf5bZxe061Y/Wi/1a2XVjTmRaYibe2E49W/C54Y0cHbo9fPhwde7cWc8++6yuvfZa/frrr5o8ebJ9GEePHtXo0aPVt29fO2tpy5Yteuihh9SwYUP16NHDydIBAA5Ky8zR3z/+TV+v3m+3B3eqo8eujFNQgL+uaVfrjCv7wvs4OkbG+PLLL+0AXbN+jJl6PWLECN1xxx322LFjx3T11VdrxYoVSkpKUo0aNXT55Zfr6aefVtWqVYv0/oyRAQDvsutwul3cbsP+VAUF+Onpv7TQ9efXdroslLCifn47HmRKG0EGALzHoi2HdPf0ZTqSnq3K4cF648Z4ta9byemy4ODnN6sCAQDcnvmbe9riHXb13pw8l1rUjNTkQe1Vo0KY06XBYQQZAIBby8rJ05NfrNX7vx6f0XpV6xp6vm8rhQUHOF0a3ABBBgDgtg4ezdTQacu0ZPsR+flJD/VoqiEX1bc3EAYMggwAwC2t2ZOsO99dqr3JGYoICdS/BrTRpU2LNtEDvoMgAwBwOzN/22unV2dk56l+5fKafFN7NYwJd7osuCGCDADAbeTlufTSdwma8MMWu31R4yoaP6CtosKCnC4NboogAwBwC6kZ2Ro2Y6Xmbki023ddWF8P9WzKYnb4QwQZAIDjth1Ms4vcbU48quBAfz3ft6X+2raW02XBAxBkAACOmr/xd9333nKlZOSoWmSoJt8Ur1a1KjhdFjwEQQYA4Ngid2/+tE1jZq1XnktqV7uCXak3JrLwTR+BP0KQAQCUuYzsXD36yWp9smKP3b62fS09fXULhQSyyB3ODkEGAFCm9idn6K7/LNVvu5PtQN7HejfTzZ3rssgdioUgAwAoM8t3HtGQ/yxTYmqmnVI9YWA7dWlY2emy4MEIMgCAMvHxst22OykrN0+Nq4Zryk3tVSe6vNNlwcMRZAAApSonN0/Pfr1B/164zW5fFldV465ro/AQPoJw7vgtAgCUmqT0LN33/gr9tOmg3b6/WyMN69ZI/ixyhxJCkAEAlIqNB1LtInc7DqUrLChAY69trStaVne6LHgZggwAoMTNXndAw2asUFpWrmpVDNPkQe0VVyPS6bLghQgyAIASXeTu9XmbNXb2RrlcUsf6lTRhYLwqlQ92ujR4KYIMAKBEpGfl6O8frdJXq/fZ7Zs61dHjV8YpKMDf6dLgxQgyAIBztvtIuu54d5nW70tRUICfnvpLCw04v7bTZcEHEGQAAOfkl62HNHT6ch1Oy1J0+WC9MShe59Wt5HRZ8BEEGQBAsU1bvEOjvlirnDyXmteI1OSb2qtmhTCny4IPIcgAAM5aVk6eRs1cq/d+2Wm3r2xVXS/2a62wYG76iLJFkAEAnJWDRzN197Tl+nX7YZn7PD54eRPdfXEDbvoIRxBkAABFtnZvsu58d5n2JB2ztxj41/Vt1K1ZVafLgg8jyAAAiuTLVXv14Ee/KSM7T3Wjy+nNwe3VMCbC6bLg4wgyAIA/lJfn0suzN+q1eZvt9gWNKuu1Ae0UVS7I6dIAggwA4MxSM7I1/IOVmrM+0W7feWF9PdSjiQJZ5A5ugiADADit7QfT7E0fNyUeVXCgv567pqWuaVfL6bKAQggyAIBT/Ljxd9373nKlZOSoamSIJg1qrzaxFZwuCzgFQQYAUOimj28t2KZnv16vPJfUtnYFTboxXjGRoU6XBpwWQQYAYGVk5+ofn67Rf5fvttv94mvpn1e3UGgQi9zBfRFkAAA6kJKhu/6zTCt3JcnfT/pH7zjd2qUui9zB7RFkAMDHrdh5xIaYxNRMRYUF6fUb2qlro8pOlwUUCUEGAHzYf5ft1shPV9t7JzWKCdeUm9qrbuXyTpcFFBlBBgB8UE5unp6btUFvLthmt7s3q6px17VWRCiL3MGzEGQAwMckp2fr3veX66dNB+32fZc21PDujeVvBscAHoYgAwA+ZHNiqm5/Z6m2H0pXWFCAXurfWr1bVXe6LKDYCDIA4CPmrDugYR+s1NHMHNWsEKbJN8WreY0op8sCzglBBgB8YJG7CT9s0UvfJcjlkjrUq6QJA9spOjzE6dKAc+b4Xb/27NmjG2+8UdHR0QoLC1PLli21dOnSQv8HfOKJJ1S9enV7vHv37tq0aZOjNQOAp0jPytG976/Qi98eDzE3dqytabd3IMTAazgaZI4cOaIuXbooKChIs2bN0rp16zR27FhVrFix4JwXXnhB48eP1xtvvKFffvlF5cuXV48ePZSRkeFk6QDg9vYkHVO/iYv01ap9CvT30zN/baF/Xt1SQdy5Gl7Ez2WaPBzyyCOPaOHChfrpp59Oe9yUVqNGDf3tb3/Tgw8+aPclJyeratWqevvtt3X99df/6fdISUlRVFSUfV1kZGSJ/wwA4I5+3XZYQ6ct06G0LEWXD9bEG+N1fr1KTpcFFFlRP78djeVffPGF2rdvr/79+ysmJkZt27bVlClTCo5v27ZN+/fvt91J+cwP1aFDBy1atOi075mZmWl/+BMfAOBLpv+yQzdMWWxDTFz1SH1+bxdCDLyWo0Fm69atmjhxoho1aqRvv/1WQ4cO1f3336933nnHHjchxjAtMCcy2/nHTjZmzBgbdvIfsbGxZfCTAIDzsnPz9Nhnq+2NH3PyXHZa9cdDO6lWxXJOlwZ456ylvLw82yLz7LPP2m3TIrNmzRo7Hmbw4MHFes+RI0dqxIgRBdumRYYwA8DbHTqaqaHTl9suJXOfxwcvb6K7L27ATR/h9RxtkTEzkeLi4grta9asmXbu3GmfV6tWzX49cOBAoXPMdv6xk4WEhNi+tBMfAODN1u1N0VWvLbQhJjwkUFMGtdc9lzQkxMAnOBpkzIylhISEQvs2btyoOnXq2Of16tWzgWXu3LmFWljM7KVOnTqVeb0A4G6+Xr1PfSf+bGco1Ykup0/v7qzucYW74wFv5mjX0vDhw9W5c2fbtXTttdfq119/1eTJk+3DMH9NDBs2TP/85z/tOBoTbB5//HE7k+nqq692snQAcFRenkuvzNmo8d9vttsXNKqsVwe0VYVywU6XBvhOkDnvvPP06aef2nEtTz31lA0qr7zyigYOHFhwzkMPPaS0tDTdeeedSkpKUteuXfXNN98oNDTUydIBwDGpGdka/sFvmrP+eLf77V3r6ZFeTRXI+jDwQY6uI1MWWEcGgDfZcSjN3vRxU+JRBQf6a8xfW6pvfC2nywIc+/zmXksA4CEWbDqoe95bruRj2YqJCNGkQfFqW/v/V0IHfBFBBgDcnGk4//fC7Xrmq3XKc0mtYyto8qB4VY2kix0gyACAG8vMybUL3H28bLfdvqZdTT3715YKDQpwujTALRBkAMBNJaZk6K5py7RiZ5L8/aRHr2im27rWY30Y4AQEGQBwQ7/tStKd/1mqAymZigwN1Gs3tNOFjas4XRbgdggyAOBmPl2xWw//d7WycvLUMCZcU25qr3qVyztdFuCWCDIA4CZy81x6/psNmvzjVrvdvVmMxl3XRhGhQU6XBrgtggwAuIHk9GzdN2OFftz4u92+55IG+ttlTeRvBscAOCOCDAA4bHPiUd3x7lJtO5im0CB/vdivtfq0ruF0WYBHIMgAQBl2HZk7VCemZigmIlTn16ukHxISNWzGSqVm5qhmhTBNvilezWtEOV0q4DEIMgBQBr5Zs0+jZ67TvuSMgn3hIYE6mpljn59ft5Im3NhOlcNDHKwS8DwEGQAogxAzdNpynXxju/wQY+5c/dbg8+y9kwCcHf5fAwCl3J1kWmJcfzJGJoBBvUCxEGQAoBSZMTEndiedjjluzgNw9ggyAFCKzMDekjwPQGEEGQAoJbsOp2v64h1FOtfMYgJw9hjsCwAlLD0rR2/8sEWTftyqzJy8PzzXjIypFnV8KjaAs0eQAYAS4nK5NHPVPo35en3BuJiO9Supe7Oqeuar9cfPOeH8/OG9T/aJY7AvUEwEGQAoAWv2JOupmev06/bjg3bN4nb/6N1MvVpUk5+fn2pVDDtlHRnTEmNCTM8W1R2sHPBsBBkAOAeHjmbqpe82asaSnXK5ZG8xMPSihrrrovoKDQooOM+Elcviqp2ysi8tMcC5IcgAQDFk5+bpP4t26JU5G5WScXxhuytbVdfIK5rZ1pjTMaGlU4PoMq4U8G4EGQA4Sz9t+t12I21KPGq3m1WP1Kg+cepQn5AClDWCDAAU0Y5DafrnV+s1e90Bu12xXJAe7NFE159Xmy4iwCEEGQD4E2mZOXp93ma9+dM2ZeXm2dAyqGMdDe/eWFHlgpwuD/BpBBkA+IPp1J+t3KPnZm3QgZRMu69rw8p6ok+cGleNcLo8AAQZADi9VbuTNOqLtVq+M8lux1YK02O943R5XFU7nRqAeyDIAMAJfk/N1IvfbtBHy3bb6dRhQQG699KGuq1rvULTqQG4B4IMAEjKysnTOz9v1/i5m5SaeXw69dVtauiRXs3swnUA3BNBBoDPm5eQqKe/XKetv6fZ7ZY1ozTqqjjF1+H+R4C7I8gA8FnbDqbZAPP9hkS7HV0+WA/1bKJ+8bFMpwY8BEEGgM9JzcjWa99v1r8XblN2rkuB/n66uXNd3d+9kSJDmU4NeBKCDACfkZfn0icr9uj5bzbYQb3GRY2r6PEr49QwJtzp8gAUA0EGgE9YsfOIRs1cp992HZ9OXSe6nJ64Mk6XNo1hOjXgwQgyALxaYkqGnv8mQf9dvttulw8206kb6daudRUSyHRqwNMRZAB4pcycXE1duF2vzt2ktKxcu++adjX1SM+miolkOjXgLQgyALzutgJmFpKZjbT9ULrd1zq2gr07ddvaFZ0uD0AJI8gA8BqbE4/aADN/4+92u3J4iB7p1VTXtK0pf6ZTA16pWEGmbt26uvXWW3XzzTerdu3aJV8VAJyFlIxsjZ+zSW//vF05eS4FBfjp1i717K0FIphODXg1/+K8aNiwYfrkk09Uv359XXbZZZoxY4YyM49PZQSAspxO/cGSnbr0pR/05oJtNsSYWUjfDrtQI69oRogBfICfy3QoF9Py5cv19ttv6/3331dubq5uuOEG21LTrl07uYuUlBRFRUUpOTlZkZGRTpcDoIQs23FYo75Yp9V7ku12/crl9XifOF3SJMbp0gCU4ef3OQWZfNnZ2ZowYYIefvhh+7xly5a6//77dcsttzi+PgNBBvAu+5Mz9Nys9fps5V67HR4SqAe6NdLgznUVHFisRmYAbqion9/nNNjXhJZPP/1UU6dO1ezZs9WxY0fddttt2r17tx599FHNmTNH77333rl8CwCwMrJz9daCbXp93malZ+XK/I3UP76W/t6jqapEhDhdHgCH+Be3S+m+++5T9erVde+996p58+Zas2aNFixYYFthHn/8cRtiTMj5I6NGjbItNic+mjZtWnD84osvPuX4kCFDilMyAA9lGo2/Xbtfl4/7US9+m2BDTLvaFfT5PV30Qr/WhBjAxxWrRea8886zg3wnTpyoq6++WkFBpw6oq1evnq6//vo/fS8TgkzoKSgosHBJd9xxh5566qmC7XLlyhWnZAAeaNOBVI2euU4LNh+021Ujj0+nvrpNTce7rQF4cJDZunWr6tSp84fnlC9f3nY5/WkBgYGqVq3aGY+b4PJHx09mZk+dOIPK9LEB8CzJ6dkaN2ej/rN4h3LzXAoO8NftF9TTPZc0VPkQlr8CcI5dSybEJCUl6c0339TIkSN1+PDhgi6nPXv2nNV7bdq0STVq1LBTuQcOHKidO3cWOj59+nRVrlxZLVq0sN8rPf34Sp1nMmbMGDs4KP8RGxtbjJ8QgBNMaJn+yw5dMvYHuyaM2b4srqpmj7hQD/VsSogBUDKzllatWqVu3bqpQoUK2r59uxISEmwQeeyxx2wQeffdd4v0PrNmzdLRo0fVpEkT7du3T6NHj7ZByIy3iYiI0OTJk21oMkHHfE8zK+r888+3a9icTYuMCTPMWgLc26/bzHTqtVq373grasOYcD3ZJ04XNKridGkAvG36tQkx8fHxeuGFF2zg+O2332yQ+fnnn+1aMibcFIdp5THB5eWXX7azn072/fff2++9efNmNWjQoEjvyfRrwL3tTTqmZ79ery9X7bPbEaGBGt69sQZ1qqOgAKZTA74qpTSnXy9dutS2lpysZs2a2r9/v4rLtPA0btzYBpXT6dChg/16NkEGgPtOp57841ZN+GGzMrLz7HTq68+rrQcvb6zocGYiASiaYgWZkJCQ0w6i3bhxo6pUKX4zsOlm2rJliwYNGnTa4ytXrrRfzbRvAJ7JNALPWrNfz3y1XnuSjtl959WtqCf7NFeLmlFOlwfAF4LMVVddZadEf/jhh3bbTIM0Y2PMGJa+ffsW+X0efPBB9enTx3Yn7d27V08++aQCAgI0YMAAG2jMYnpXXHGFoqOj7RiZ4cOH68ILL1SrVq2KUzYAh23Yn6LRX6zToq2H7Hb1qFB7T6Q+raoznRpA2QWZsWPHql+/foqJidGxY8d00UUX2S6lTp066Zlnniny+5gVgE1oOXTokG3J6dq1qxYvXmyfZ2Rk2PVlXnnlFaWlpdkBuyYkmQHFADzLkbQsvTx7o52RlOeSvZXAkAvra8jFDVQumJlIAIrvnO61ZFbyNS0lpkvI3Ciye/fucjcM9gWck5Obp/d/3amxszcqKT3b7uvVopoevaKZYiuxuCUAN7lppDsjyADOWLTlkEbPXKsN+1PtdpOqEXY6deeGlZ0uDYAHKPWbRs6dO9c+EhMTlZeXV+jYv//97+K+LQAPt/tIup1O/fXq4zMYo8KCNOKyxhrYobYCmU4NoIQVK8iYhevMYN/27dvbGUQM0gNwLCtXE3/YrEk/blVmTp78/aQbOtTW3y5roorlg50uD4CXKlaQeeONN/T222+fcZo0AN9heqfNYnZjvl6vvckZdl+HepU06qrmalad7lwAbhhksrKy1Llz55KvBoBHWbs32d6d2txewKhZIcwO5L2iZTVaagG4b5C5/fbb7Rovjz/+eMlXBMDtHU7L0kvfJWjGrzvtdOrQIH8NuaiB7rqwgcKCA5wuD4APKVaQMWu8mFsUmHVezOJ0QUFBhY6beyUB8D7ZuXmatniHxs3eqJSMHLuvd6vqthXGtMYAgEcEGbN2TJs2bexzc6fqE9GcDHinBZsO2unUmxKP2m0z/sVMp+5YP9rp0gD4sGIFmXnz5pV8JQAck5vnsuNcElMzFBMRqvPrVVKAmXYkaeehdP3zq3X6bt0Bu12xXJD+dnkTDTi/dsE5AOCUc14b3NxmwKhVq1ZJ1AOgjH2zZp8dsLvvfzOO8u+B9HDPptqUmKopP21TVk6eDS2DOtbRsO6NVKEc06kBuIdirU5lFsAz68iYFffMDR/No0KFCnr66adPWRwPgHuHmKHTlhcKMYbZHvbBSr0+b4sNMV0aRuvr+y+wU6oJMQA8vkXmH//4h9566y0999xz6tKlS8F9l0aNGmUHAp/NjSMBONedZFpi/ugeJQF+0qsD2qkX06kBeFOQeeedd/Tmm2/qqquuKthnZi/VrFlTd999N0EG8ABmTMzJLTEny3XJrspLiAHgVV1Lhw8fVtOmTU/Zb/aZYwDcnxnYW5LnAYDHBJnWrVvrtddeO2W/2WeOAXDvWwos3HxQb/60tUjnm1lMAOBVXUsvvPCCevfubRfE69Spk923aNEi7dy5U7NmzSrpGgGU0JiYb9fu1xvzt2jV7uQ/Pd90JlWLOj4VGwC8KshcdNFFSkhI0MSJE7V+/Xq775prrrHjY2rUqFHSNQI4BxnZufp0xR5N/nGrth1Ms/tCAv113Xmxalw1Qo9/dnxRyxMH/eaPiDEL3rFWDACvXEcmOjraDvbt2LFjwZTrpUuX2q8nDgIG4IyUjGxNX7xT/164Tb+nZtp9UWFBGtypjgZ3rqvo8BC7r3J48CnryJiWGBNierao7lj9AFBqQeabb77RTTfdpEOHDtn+9hOZ2Q25ubnFeVsAJSAxJUNvLdym9xbvVGpmTsECd7d1rWdX4y0fUvj/9iasXBZX7Ywr+wKAO/NznZxEiqBRo0a6/PLL9cQTT6hq1apyZykpKXbhvuTkZEVGRjpdDlBqTLfR5B+36L/L9igr93graaOYcN11UQNd1bqGggOLNbYfANz687tYLTIHDhzQiBEj3D7EAL7gt11JdgDvN2v3K//Pkvg6FTXkogbq1jRG/rSsAPBixQoy/fr10w8//KAGDRqUfEUA/pRpSP1p00EbYH7ecqhg/6VNYzT04gY6ry4zjQD4hmJ1LaWnp6t///6qUqWKWrZsqaCgoELH77//frkLupbgTXJy8zRrzfEp1Gv3pth9gf5+tuvIdCE1qRbhdIkA4P5dS++//76+++47hYaG2paZE5cvN8/dKcgA3jKF+qNluzXlx63aeTjd7gsLCtD158fq9gvqq2aFMKdLBADPumnk6NGj9cgjj8jfnwGEQGlJTs/WfxZv19s/b9fBo1l2X8VyQXb69OBOde19kADAlxUryGRlZem6664jxAClZH9yht5asFXv/bJTaVnHlzMwrS53XFBP154Xq3LBxV4CCgC8SrH+NRw8eLA++OADPfrooyVfEeDDNiematL8rfps5R5lm1tPS2pSNUJDLq6vK1vVUFAAfzwAwDkHGbPgnbnf0rfffqtWrVqdMtj35ZdfLs7bAj5r+c4jeuOHLfpu3YGCfefXrWRnIF3cpEqhcWgAgHMMMqtXr1bbtm3t8zVrjt+nJR//4AJFYyYM/pDwuybO32JX1c13WVxVuwaMWQsGAFAKQWbevHnFeRmA/02h/nLVPjuFesP+VLsvKMBPV7epqbsuqq+GMUyhBoCiYsQgUEaOZeXqgyU7NeWnbdqTdMzuKx8cYO9/dNsF9VQ9iinUAHC2CDJAKTuSlqV3F+3QO4u263Da8SnU0eWDdUuXuhrUsa6iyhUeYwYAKDqCDFBKTKvLmz9t1Yxfd+lY9vEp1LGVwnTnBfXVv32sQoMCnC4RADweQQYoYRsPpNrxL1+s3KucvONTqJtVj7QzkK5oUU2BTKEGgBJDkAFKyJLth+0U6rkbEgv2daofrSEXN9CFjSozow8ASgFBBjgHeXkufb8h0bbALN1xxO4zeaVn82p2CnXr2ApOlwgAXo0gAxRDdm6ePl+5V5Pmb9GmxKN2X3CAv65pV1N3XFhfDaqEO10iAPgEggxwFtIyczRjyS699dNW7U3OsPvCQwI1sGNt3dqlnqpGhjpdIgD4FIIMUASHjmbqnZ+3651FO5R8LNvuqxweolu71tXADnUUFcYUagBwAkEG+AO7DqfbKdQfLN2ljOw8u69udDndeWED243EFGoAcBZBBjiN9ftS7ABecyuB3P9NoW5ZM8oO4O3ZopoC/JmBBADuwNEFLUaNGmWnpJ74aNq0acHxjIwM3XPPPYqOjlZ4eLj69u2rAwf+/+7AQEnfxHHx1kO6eeqv6vWvn+xgXhNiLmhUWdNv76Av7u2i3q2qE2IAwI043iLTvHlzzZkzp2A7MPD/Sxo+fLi++uorffTRR4qKitK9996ra665RgsXLnSoWnjrFOrv1h2wLTArdyXZfSar9GpZXUMubKCWtaKcLhEA4K5BxgSXatWqnbI/OTlZb731lt577z1deumldt/UqVPVrFkzLV68WB07dnSgWniTzJxcfb5iryb9uEVbfk+z+4ID/dU/vpbuuKC+6lYu73SJAAB3DzKbNm1SjRo1FBoaqk6dOmnMmDGqXbu2li1bpuzsbHXv3r3gXNPtZI4tWrTojEEmMzPTPvKlpKSUyc8Bz5Gaka33f92ptxZs04GU478rEaGBGtSxjm7pUk9VIkKcLhEA4AlBpkOHDnr77bfVpEkT7du3T6NHj9YFF1ygNWvWaP/+/QoODlaFCoVXRq1atao9diYmCJn3AU72e2qm3v55m70TdWpGjt1XNTJEt3WtpwHn11ZEKFOoAcDTOBpkevXqVfC8VatWNtjUqVNHH374ocLCwor1niNHjtSIESMKtcjExsaWSL3wTDsOpWnyj1v10bLdyso5PoW6fpXyuuvC+rq6bU2FBDKFGgA8leNdSycyrS+NGzfW5s2bddlllykrK0tJSUmFWmXMrKXTjanJFxISYh/Amj3JdgDv16v36X8zqO29j4Ze1ECXx1WVP7OPAMDjuVWQOXr0qLZs2aJBgwYpPj5eQUFBmjt3rp12bSQkJGjnzp12LA1wpinUP285ZAPMT5sOFuy/qHEVuwZMx/qVuAs1AHgRR4PMgw8+qD59+tjupL179+rJJ59UQECABgwYYKdb33bbbbabqFKlSoqMjNR9991nQwwzlnAys97Lt2v32wCzaney3WfWe7myVXXddWEDxdWIdLpEAIC3BZndu3fb0HLo0CFVqVJFXbt2tVOrzXNj3Lhx8vf3ty0yZiZSjx49NGHCBCdLhgMB5ddth5WYmqGYiFCdX69SoQXpMrJz9cnyPZry01ZtO3h8CnVIoL+uOy/WTqGOrVTOweoBAKXNz2Xa4r2YGexrWnfMujSmVQee45s1+zR65jrt+99dpo3qUaF6sk+cOjesrOmLd+rfC7fZ2UiGuXHj4E51NLhzXUWHM04KAHzh89utxsgAJ4aYodOW6+SUbULNkGnLFRror4z/zUAy4SZ/CnX5EH6lAcCX8K8+3LI7ybTE/FFToQkxDauU15CLG+qq1jXsirwAAN9DkIHbMWNiTuxOOpOn/tLCdjEBAHwXf8bC7ZiBvUXx+9H/vxUFAMA3EWTgdszspJI8DwDgvQgycDtminWFcme+75Hf/wb4mvMAAL6NIAO3Y9aDycjKPe2x/BVkzBTsE9eTAQD4JoIM3EpaZo6GTFtmZyU1iglXtcjC3UfVokI18cZ26tmiumM1AgDcB7OW4DbM2owP/XeVNiceVdXIEL13R0dVKh/8hyv7AgB8G0EGbuOtBdv01ap9CvT304SB7VQl4vjqvJ0aRDtdGgDATdG1BLdgWl3GzNpgnz/Wu5ni6zCQFwDw5wgycFxiSobueW+5XdH3L21q2HslAQBQFAQZOCo7N093T19ub/zYpGqExlzTUn5+jIEBABQNQQaOevbr9Vq644giQgL1xqB4lQtm2BYAoOgIMnDM5yv3aOrC7fb52Gtbq17l8k6XBADwMAQZOCJhf6oe+e9q+/yeSxro8ubVnC4JAOCBCDIocykZ2XbRu2PZuerasLJGXNbE6ZIAAB6KIIMylZfn0t8+/M3ehqBmhTCNH9CWBe4AAMVGkEGZeuPHLZq97oCCA/ztondm5V4AAIqLIIMys3DzQb30bYJ9Puqq5modW8HpkgAAHo4ggzKxN+mY7nt/hfJcUv/4WhpwfqzTJQEAvABBBqUuMydXQ6cv1+G0LDWvEamnr27BoncAgBJBkEGpe2rmOv22K0lRYUF648Z4hQYFOF0SAMBLEGRQqj5aukvTf9kp0wDzyvVtFFupnNMlAQC8CEEGpWbNnmQ99tka+3xYt8a6pEmM0yUBALwMQQalIik9S0OnL1NmTp4uaVJF913a0OmSAABeiCCDUln0btgHK7Xr8DHVrlROr1zXVv4segcAKAUEGZS48d9v0g8Jvysk0F8Tb2ynqHJBTpcEAPBSBBmUqHkJifrX3E32+TN/banmNaKcLgkA4MUIMigxuw6na9iMlXK5pIEdaqtffC2nSwIAeDmCDEpERnauvaN18rFse+uBJ/rEOV0SAMAHEGRwzlwul51mvXZvir0J5MSB7RQSyKJ3AIDSR5DBOXv/1136eNlumYlJrw5oqxoVwpwuCQDgIwgyOCcrdyVp1Bdr7fO/92iqLg0rO10SAMCHEGRQbIeOZuruacuUlZunHs2rashF9Z0uCQDgYwgyKJbcPJfun7FCe5MzVL9yeb3YvzV3tAYAlDmCDIpl7HcJWrj5kMKCAvTGoHhFhrLoHQCg7BFkcNa+W7tfE37YYp8/17elGleNcLokAICPIsjgrGw7mKa/ffibfX5Ll7r6S5uaTpcEAPBhBBkUWXpWjob8Z5lSM3PUvk5FPXpFM6dLAgD4OIIMirzo3chPVivhQKqqRIRowsB2Cgrg1wcA4Cw+iVAk7/y8XZ+v3KsAfz+9fkM7xUSGOl0SAADuE2See+45O3132LBhBfsuvvhiu+/Ex5AhQxyt0xct3X5Y//xqvX1uupPOr1fJ6ZIAALAC5QaWLFmiSZMmqVWrVqccu+OOO/TUU08VbJcrV66Mq/NtiakZunv6cuXkuXRlq+q6tUtdp0sCAMB9WmSOHj2qgQMHasqUKapYseIpx01wqVatWsEjMjLyD98vMzNTKSkphR4onuzcPN373golpmaqUUy4nu/bikXvAABuxfEgc88996h3797q3r37aY9Pnz5dlStXVosWLTRy5Eilp6f/4fuNGTNGUVFRBY/Y2NhSqtz7PT9rg37ddljhIYF20bvyIW7RgAcAQAFHP5lmzJih5cuX266l07nhhhtUp04d1ahRQ6tWrdLDDz+shIQEffLJJ2d8TxN2RowYUbBtWmQIM2fvq1X79OaCbfb5S/1bqUGVcKdLAgDAfYLMrl279MADD2j27NkKDT39DJg777yz4HnLli1VvXp1devWTVu2bFGDBg1O+5qQkBD7QPFtTkzV3z8+vujdXRfVV88W1Z0uCQAA9+paWrZsmRITE9WuXTsFBgbax/z58zV+/Hj7PDc395TXdOjQwX7dvHmzAxX7htSMbN35n2VKz8pVp/rR+vvlTZwuCQAA92uRMS0rq1evLrTvlltuUdOmTW0XUkBAwCmvWblypf1qWmZQOovePfTxKm39PU3VIkP16g1tFciidwAAN+ZYkImIiLADeE9Uvnx5RUdH2/2m++i9997TFVdcYfeZMTLDhw/XhRdeeNpp2jh3U37aqllr9isowE8TbmynyuF00QEA3JvbTkMJDg7WnDlz9MorrygtLc0O2O3bt68ee+wxp0vzSj9vOajnZm2wz5/o01ztap86FR4AAHfj5zL9CV7MzFoy07CTk5P/dA0aX7Uv+ZiuHL9Ah9KydE27mhrbvzXrxQAAPOLzmwEQPi4rJ8+u3GtCTNNqEXrm6paEGACAxyDI+LhnvlqnFTuTFBEaqEmD4hUWfOogawAA3BVBxod9umK33lm0wz5/5bo2qhNd3umSAAA4KwQZH7V+X4pGfnJ8+vv9lzZUt2ZVnS4JAICzRpDxQcnHsjVk2jJlZOfpwsZV9ED3xk6XBABAsRBkfExenkt/+3CldhxKV80KYfrXdW0U4M/gXgCAZyLI+JgJP2zWnPWJCg701xs3xqti+WCnSwIAoNgIMj7kx42/a+zsjfb5P//SQi1rRTldEgAA54Qg4yN2HU7X/TNWyCx/OOD8WF17XqzTJQEAcM4IMj4gIzvXLnqXlJ6tljWj9GSf5k6XBABAiSDI+IDRM9dq9Z5kVSgXpIk3tlNoEIveAQC8A0HGy32wZKfe/3WXzF0Hxl/fVrUqlnO6JAAASgxBxout3p2sxz9fa5//7bLGds0YAAC8CUHGSx1Jy7KL3pmbQnZvFqO7L27odEkAAJQ4gowXys1z6YEPVmpP0jHViS6nsde2kT+L3gEAvBBBxgv9a85Gu2ZMaNDxRe+iwoKcLgkAgFJBkPEyc9cf0PjvN9vnY65pqWbVI50uCQCAUkOQ8SLbD6Zp2Acr7fPBneror21rOV0SAACliiDjJY5l5drBvakZOWpXu4L+0TvO6ZIAACh1BBkv4HK59I9PV2vD/lRVDg/W6wPb2ZtCAgDg7fi08wLTftmpT1bsUYC/n14d0E7Vo8KcLgkAgDJBkPFwy3ce0VMzjy9693DPJurUINrpkgAAKDMEGQ928Gim7p62XNm5LvVqUU13XFDf6ZIAAChTBBkPlZObp/veW6H9KRlqUKW8XuzfWn7mhkoAAPgQgoyHevG7BC3aekjlgwM0aVC8wkMCnS4JAIAyR5DxQLNW79Ok+Vvt8xf6tVbDmAinSwIAwBEEGQ+zOfGo/v7xKvv8jgvqqXer6k6XBACAYwgyHiQtM8cuenc0M0fn16ukh3s2dbokAAAcRZDxoEXvHv7vKtsiExMRotduaKvAAP7zAQB8G5+EHuLfC7fry1X7FOjvpwkD2ykmItTpkgAAcBxBxgP8uu2wnv16vX3+WO9mal+3ktMlAQDgFggybi4xJUP3vLdcuXku/aVNDQ3uXNfpkgAAcBsEGTeWnZunu6cv1++pmWpSNUJjrmnJoncAAJyAIOPGTHfS0h1HFBESqDcGxatcMIveAQBwIoKMm/p85R5NXbjdPh97bWvVq1ze6ZIAAHA7BBk3lLA/VY/8d7V9fs8lDXR582pOlwQAgFsiyLiZlIxsu+jdsexcdW1YWSMua+J0SQAAuC2CjJstevfgh79p28E01YgK1b+ub6MAfwb3AgBwJgQZN/LG/K36bt0BBQf4a8KN8YoOD3G6JAAA3BpBxk0s3HxQL367wT4fdVVztYmt4HRJAAC4PYKMG9ibdEz3vb9CeS6pf3wtDTg/1umSAADwCG4TZJ577jm72NuwYcMK9mVkZOiee+5RdHS0wsPD1bdvXx04cEDeJDMnV0OnL9fhtCw1rxGpp69uwaJ3AAB4UpBZsmSJJk2apFatWhXaP3z4cM2cOVMfffSR5s+fr7179+qaa66RN3lq5jr9titJUWFBeuPGeIUGBThdEgAAHsPxIHP06FENHDhQU6ZMUcWKFQv2Jycn66233tLLL7+sSy+9VPHx8Zo6dap+/vlnLV68WN7go6W7NP2XnTINMK9c30axlco5XRIAAB7F8SBjuo569+6t7t27F9q/bNkyZWdnF9rftGlT1a5dW4sWLTrj+2VmZiolJaXQwx2t2ZOsxz5bY58/0K2RLmkS43RJAAB4HEdv3jNjxgwtX77cdi2dbP/+/QoODlaFCoVn71StWtUeO5MxY8Zo9OjRcmfJ6dkaOn2ZMnPydEmTKrr/0kZOlwQAgEdyrEVm165deuCBBzR9+nSFhoaW2PuOHDnSdkvlP8z3cSd5eS4N+2CFdh0+pthKYRp3XRv5s+gdAACeFWRM11FiYqLatWunwMBA+zADesePH2+fm5aXrKwsJSUlFXqdmbVUrdqZ7z0UEhKiyMjIQg938ur3mzUv4XeFBPpr4sB4VSgX7HRJAAB4LMe6lrp166bVq4/fGDHfLbfcYsfBPPzww4qNjVVQUJDmzp1rp10bCQkJ2rlzpzp16iRPNC8hUa/M3WifP/PXlmpRM8rpkgAA8GiOBZmIiAi1aNGi0L7y5cvbNWPy9992220aMWKEKlWqZFtW7rvvPhtiOnbsKE+z63C6hs1YKZdLGtihtvrF13K6JAAAPJ6jg33/zLhx4+Tv729bZMxspB49emjChAnyNBnZufaO1snHstU6toKe6BPndEkAAHgFP5e55bIXM9Ovo6Ki7MBfJ8bLmMv7949X6eNlu1WpfLC+vK+ralQIK/M6AADwxs9vx9eR8Xbv/7rLhhgzMenVAW0JMQAAlCCCTClauStJo75Ya58/2KOJujSs7HRJAAB4FYJMKTE3gbx72jJl5ebp8riqGnpRA6dLAgDA6xBkSkFunkv3v79Ce5MzVK9yeb10bWvuaA0AQCkgyJSCl2cnaMHmgwoLCrB3tI4MDXK6JAAAvBJBpoR9t3a/Xp+3xT5/rm9LNakW4XRJAAB4LYJMCdp2ME1/+/A3+/yWLnX1lzY1nS4JAACvRpApIelZORryn2VKzcxR+zoV9egVzZwuCQAAr0eQKaFF70Z+sloJB1JVJSJEEwa2U1AAlxYAAJ++RYE7z0r6ddthJaZmKCYiVOv3JevzlXsV4O+n129op5jIUKdLBADAJxBkztI3a/Zp9Mx12pecccqxkb2a6vx6lRypCwAAX0SQOcsQM3Tacp3p5lQ1uf0AAABlioEcZ9GdZFpizhRizHJ3T325zp4HAADKBkGmiMyYmNN1J+Uz8cUcN+cBAICyQZApIjOwtyTPAwAA544gU0RmdlJJngcAAM4dQaaIzGyk6lGhdizM6Zj95jizlgAAKDsEmSIya8Q82SfOPj85zORvm+PmPAAAUDYIMmehZ4vqmnhjO1WLKtx9ZLbNfnMcAACUHdaROUsmrFwWV63Qyr6mO4mWGAAAyh5BphhMaOnUINrpMgAA8Hl0LQEAAI9FkAEAAB6LIAMAADwWQQYAAHgsggwAAPBYBBkAAOCxCDIAAMBjEWQAAIDHIsgAAACP5fUr+7pcLvs1JSXF6VIAAEAR5X9u53+O+2yQSU1NtV9jY2OdLgUAABTjczwqKuqMx/1cfxZ1PFxeXp727t2riIgI+fn5lWhSNOFo165dioyMLLH3xam41mWD61w2uM5lg+vs+dfZxBMTYmrUqCF/f3/fbZExP3ytWrVK7f3Nfzj+T1I2uNZlg+tcNrjOZYPr7NnX+Y9aYvIx2BcAAHgsggwAAPBYBJliCgkJ0ZNPPmm/onRxrcsG17lscJ3LBtfZd66z1w/2BQAA3osWGQAA4LEIMgAAwGMRZAAAgMciyAAAAI/l00Hmxx9/VJ8+feyqgWbV388++6zQ8QMHDujmm2+2x8uVK6eePXtq06ZNhc7ZsmWL/vrXv6pKlSp2MaBrr73Wvu5Ehw8f1sCBA+3xChUq6LbbbtPRo0flK8rqOj/zzDPq3LmzfQ9znX1RWVzr7du329/hevXqKSwsTA0aNLCzFrKysuQryup3+qqrrlLt2rUVGhqq6tWra9CgQXalcl9RVtc5X2Zmptq0aWO/18qVK+Urfiyj61y3bl37/ic+nnvuuXOu36eDTFpamlq3bq3XX3/9lGNmMtfVV1+trVu36vPPP9eKFStUp04dde/e3b4u//WXX365/Y/x/fffa+HChfYfc/MLYW6NkM+EmLVr12r27Nn68ssv7S/NnXfeKV9RVtfZ7Ovfv7+GDh0qX1UW13rDhg32+aRJk+zv9bhx4/TGG2/o0Ucfla8oq9/pSy65RB9++KESEhL03//+135Y9OvXT76irK5zvoceesh+WPuatDK8zk899ZT27dtX8LjvvvvO/Qcw069hp6C7Pv3004LthIQEu2/NmjUF+3Jzc11VqlRxTZkyxW5/++23Ln9/f1dycnLBOUlJSS4/Pz/X7Nmz7fa6devs+yxZsqTgnFmzZtlz9uzZ4/I1pXWdTzR16lRXVFSUy9eVxbXO98ILL7jq1avn8kVleZ0///xze05WVpbL15T2df76669dTZs2da1du9a+74oVK1y+SKV4nevUqeMaN25cidfs0y0yf8Q0MRqmSffE+zaZRX8WLFhQcI5JoCcuBGTON+fln7No0SLbzdG+ffuCc0ySNef88ssv8nUldZ3h7LVOTk5WpUqVSrV+X7/Opot6+vTptvs0KChIvq4kr7PpArnjjjv0n//8x3adoPR+n01XUnR0tNq2basXX3xROTk5OlcEmTNo2rSp7ZseOXKkjhw5YpvJnn/+ee3evds2hxkdO3ZU+fLl9fDDDys9Pd02rz344IPKzc0tOGf//v2KiYkp9N6BgYH2H31zzNeV1HWGc9d68+bNevXVV3XXXXeV8U/kG9fZnGPONf/479y50zbvo+Sus2mEMOM/hgwZUugPTpT87/P999+vGTNmaN68efbfi2effdZ2550rgswZmL94PvnkE23cuNGGDpPSzcXv1atXwe3EzaCmjz76SDNnzlR4eLi9S2dSUpLatWv3h7ccx//jOnv2td6zZ48d+GfGJpm/aFHy1/nvf/+7HZfw3XffKSAgQDfddJP98PV1JXWdTQhPTU21H9Qo3d/nESNG6OKLL1arVq1scBw7dqy9/vmtPsUVeE6v9nLx8fF25LppNjcp1PzH6tChQ6HUbgY4mQF4Bw8etC0tphupWrVqql+/vj1unicmJhZ6X9OUZpqJzTGUzHVG2V9rM3vGDEY1XR2TJ0924KfxjetcuXJl+2jcuLGaNWum2NhYLV68WJ06dZKvK4nrbAanmiEAJ98ryLyHmajxzjvvyNfFl9K/0eY9zOehmQnZpEmT4hdY4qNuvGSA0+ls3LjRDmgyA5vOZO7cuXaA04YNGwoN9l26dGnBOeb1DPYt2et8Igb7lv613r17t6tRo0au66+/3pWTk+PyZWXxO51vx44d9vvNmzfP5WtK6zqba7p69eqCh3mt+V4ff/yxa9euXS5fozL8fZ42bZp9n8OHD59TzT7dImPWcjH9+/m2bdtmU6dpPjN9gqapzCRP83z16tV64IEH7DQ0kzzzTZ061f6VZM4zqd6cM3z48IJ0aY6ZpnfT7G6mqGZnZ+vee+/V9ddf7zPT/MriOhtm/IBp6TJfTd9s/joQDRs2tM2dvqAsrrXpTjLNw2YK5ksvvaTff/+94LW+0spYFtfZTAZYsmSJunbtqooVK9q/dh9//HG7bo+vtMaUxXU2rz1R/r8V5jrXqlVLvuBoGVxns8/8TptW3IiICLttjt9444329/ucuHyY+avGXIKTH4MHD7bH//Wvf7lq1arlCgoKctWuXdv12GOPuTIzMwu9x8MPP+yqWrWqPcf8hTp27FhXXl5eoXMOHTrkGjBggCs8PNwVGRnpuuWWW1ypqakuX1FW19m83+m+jy/99VoW19q0eJ3ue/jSPydlcZ1XrVrluuSSS1yVKlVyhYSEuOrWresaMmSIbQ3zFWX1b8eJtm3b5nPTr+eVwXVetmyZq0OHDra1PDQ01NWsWTPXs88+68rIyDjn+v3M/5xbFAIAAHAGUz4AAIDHIsgAAACPRZABAAAeiyADAAA8FkEGAAB4LIIMAADwWAQZAADgsQgyAADAYxFkAACAxyLIAAAAj0WQAeCTzI1F8/LynC4DwDkiyABw3Lvvvqvo6GhlZmYW2m/usDto0CD7/PPPP1e7du0UGhqq+vXra/To0crJySk49+WXX1bLli1Vvnx5xcbG6u6777Z39c339ttvq0KFCvriiy8UFxenkJAQe6d0AJ6NIAPAcf3797ctJCZk5EtMTNRXX32lW2+9VT/99JNuuukmPfDAA1q3bp0mTZpkg8kzzzxTcL6/v7/Gjx+vtWvX6p133tH333+vhx56qND3SU9P1/PPP68333zTnhcTE1OmPyeAksfdrwG4BdOCsn37dn399dcFLSyvv/66Nm/erMsuu0zdunXTyJEjC86fNm2aDSp79+497ft9/PHHGjJkiA4ePGi3TfC55ZZbtHLlSrVu3bqMfioApY0gA8AtrFixQuedd5527NihmjVrqlWrVral5vHHH1eVKlVsN1FAQEDB+aYFJyMjQ2lpaSpXrpzmzJmjMWPGaMOGDUpJSbHdTiceN0Hmrrvusvv8/Pwc/VkBlJzAEnwvACi2tm3b2pYSM17m8ssvt10/pmvJMCHGjIm55pprTnmdGTNjWnKuvPJKDR061HY3VapUSQsWLNBtt92mrKwsG2SMsLAwQgzgZQgyANzG7bffrldeeUV79uxR9+7d7aBdwwzyTUhIUMOGDU/7umXLltkZSGPHjrVjZYwPP/ywTGsH4AyCDAC3ccMNN+jBBx/UlClTbMtMvieeeMK2uNSuXVv9+vWzYeW3337TmjVr9M9//tMGnOzsbL366qvq06ePFi5cqDfeeMPRnwVA2WDWEgC3ERUVpb59+yo8PNxOvc7Xo0cPffnll/ruu+/sOJqOHTtq3LhxqlOnjj1uuqTM4GAzI6lFixaaPn26HS8DwPsx2BeAWzGzk5o3b26nUgPAnyHIAHALR44c0Q8//GC7jsxaMU2aNHG6JAAegDEyANxm1pIJM6Z7iBADoKhokQEAAB6Lwb4AAMBjEWQAAIDHIsgAAACPRZABAAAeiyADAAA8FkEGAAB4LIIMAADwWAQZAAAgT/V/L1sDZ+cFx6MAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x1 = df['year']\n",
    "y1 = df['money']\n",
    "\n",
    "fig, ax1 = plt.subplots(1)\n",
    "fig.suptitle('year-money')\n",
    "\n",
    "plt.plot(x1, y1, 'o-')\n",
    "plt.xlabel('year')\n",
    "plt.ylabel('money')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8619f8ba-6847-4046-9c0d-d9c830ff55f0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "0a223136-fc2f-451c-99b3-9a958c47cff6",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = np.array(range(64))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "70c40ad1-d1e2-4c75-a494-9439c75e981a",
   "metadata": {},
   "outputs": [],
   "source": [
    "a.shape = (8,8)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "1ce049fd-212b-4596-8d02-33e4e9ad01d1",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = np.array(range(181))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "268300ea-f70b-4db0-86e1-773cea5cc438",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = a*np.pi/180\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "df249962-dd2b-4eb2-8751-ac3074d481ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = np.sin(a)\n"
   ]
  },
  {
   "cell_type": "code",
   "id": "136a9615-0e14-41b9-b7b3-d6c14c28be3e",
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import os\n",
    "%matplotlib inline"
  },
  {
   "cell_type": "code",
   "id": "fd6da3e7-b779-476c-a2d5-034be8a3f37a",
   },
   "source": [
    "a = np.array(range(361))\n",
    "x = a * np.pi / 180\n",
    "sin = np.sin(x)\n",
    "cos = np.cos(x)\n",
    "fig, ax = plt.subplots(1)\n",
    "fig.suptitle('sin_cos')\n",
    "plt.rcParams['figure.figsize'] = (8,2)\n",
    "plt.plot(x, sin,'o-')\n",
    "plt.plot(x, cos,'.-')\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.legend(['sin','cos'])\n",
    "plt.show()"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ab7e4b97-485d-42df-b4d8-e0b64e23689e",
   "metadata": {},
   "outputs": [],
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
